#pragma once
#include "irrlicht.h"
#include <string>
#include <windows.h>


#define JAUNE 0
#define ROUGE 1
#define VERT  2
#define BLEU  3

/** @enum GUI_ELEMENT_ID
 *  @brief enum
 *
  */
enum GUI_ELEMENT_ID{
    GUI_ID_DIALOG_WIIMOTE_FAIL,
    GUI_ID_DIALOG_LUNETTES_FAIL,
    GUI_ID_MAIN_WINDOW,
    GUI_ID_QUICK_MENU,

    // Boutons du menu principal
    GUI_ID_3D_BUTTON,
    GUI_ID_LINK_BUTTON,
    GUI_ID_REVERSE_BUTTON,
    GUI_ID_RESET_BUTTON,
	GUI_ID_FIXEDRAW_BUTTON,
    GUI_ID_QUIT_BUTTON,


    GUI_ID_COLOR_LIST
};


/** @class Menu
 *  @brief Classe permettant d'afficher en stereo la scene
 *
 */
class Menu
{


public:
	Menu(irr::IrrlichtDevice *device, bool wiimote, bool stereo, bool dessinFixe);
    void update();
    void setVisible();

    int getColor();
    int getSize();

    void changeColor();

    void nextColor();
    void previousColor();

    void toggleMainMenu();
    void setCursorDraggable();

    // Fonctions appelees lors des clicks sur chaque bouton
    void activer3D();

    void activerHeadTracking();

    void inverserCamera();

	void inverserTypeDessin();
private:
	irr::IrrlichtDevice *m_device;
    irr::gui::IGUIEnvironment *m_environment;

	irr::gui::IGUIStaticText  *etat_batterie;
	irr::gui::IGUIStaticText  *position_curseur;
	irr::gui::IGUIListBox *choix_couleur;
	irr::gui::IGUIListBox *choix_taille;

	irr::gui::IGUIWindow *fenetre_menu;
	irr::gui::IGUIWindow *menu_principal;

    irr::u32 GUI_last_change;
	int color;


};
